﻿using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using SisEagle.View.Web.Base;
using System.Data;

namespace SisEagle.View.Web.Controle
{
    public partial class ControleVendas : WebPageBase
    {
        #region Singleton
        private SisEagleBO.ControleVendasBO _ControleVendasBusiness;
        private SisEagleBO.ControleVendasBO ControleVendasBusiness
        {
            get
            {
                if (_ControleVendasBusiness == null)
                    _ControleVendasBusiness = new SisEagleBO.ControleVendasBO();

                return _ControleVendasBusiness;
            }
        }

        #endregion

        #region Page-Load
        protected void Page_Load(object sender, EventArgs e)
        {
            inicialize();
            if (!IsPostBack)
            {

            }
        }
        private void inicialize()
        {
            btnLocalizar.Click += (btnLocalizar_Click);
            GridVendas.PageIndexChanging += (GridVendas_PageIndexChanging);
        }

        void GridVendas_PageIndexChanging(object sender,GridViewPageEventArgs e)
        {
            GridVendas.PageIndex = e.NewPageIndex;
            GridVendas.DataSource = BuscarVendas();
            GridVendas.DataBind();
        }

        private DataView BuscarVendas()
        {
            DataView dv = new DataView();

            dv = ControleVendasBusiness.FindAll().Tables[0].DefaultView;

            return dv;
        }


        #endregion

        #region Internal
        protected void btnLocalizar_Click(object sender, ImageClickEventArgs e)
        {
            CarregaGrid();
        }

        private void CarregaGrid()
        {
            GridVendas.DataSource = ListaResultado;
            GridVendas.DataBind();
        }


        #endregion
     
        #region Binding

        public int CodVenda
        {

            get
            {
                if (string.IsNullOrEmpty(txtCodigoVenda.Text) || !(UtilsNumber.IsNumber(txtCodigoVenda.Text)))
                {
                    return 0;
                }
                else
                    return Convert.ToInt32(txtCodigoVenda.Text);

            }
            set
            {
                txtCodigoVenda.Text = value.ToString();
            }
        }

        public int CodProduto
        {

            get
            {
                if (string.IsNullOrEmpty(UcProdutos.ComboProdutos.SelectedValue) || !(UtilsNumber.IsNumber(UcProdutos.ComboProdutos.SelectedValue)))
                {
                    return 0;
                }
                else
                    return Convert.ToInt32(UcProdutos.ComboProdutos.SelectedValue);

            }
            set
            {

                UcProdutos.ComboProdutos.SelectedValue = value.ToString();
            }
        }

        public int Quantidade
        {

            get
            {
                if (string.IsNullOrEmpty(txtQuantidade.Text) || !(UtilsNumber.IsNumber(txtQuantidade.Text)))
                {
                    return 0;
                }
                else
                    return Convert.ToInt32(txtQuantidade.Text);

            }
            set
            {
                txtQuantidade.Text = value.ToString();
            }
        }

        public int ValorUnitario
        {

            get
            {
                if (string.IsNullOrEmpty(txtValorUnitario.Text) || !(UtilsNumber.IsNumber(txtValorUnitario.Text)))
                {
                    return 0;
                }
                else
                    return Convert.ToInt32(txtValorUnitario.Text);

            }
            set
            {
                txtValorUnitario.Text = value.ToString();
            }
        }


        public DataSet ListaResultado
        {
            get
            {
                if (CodVenda != 0)
                    return ControleVendasBusiness.FindBy_CodVenda(CodVenda);

                if (CodProduto != 0)
                    return ControleVendasBusiness.FindBy_codProduto(CodProduto);

                if (Quantidade != 0)
                    return ControleVendasBusiness.FindBy_Quantidade(Quantidade);

                if (ValorUnitario != 0)
                    return ControleVendasBusiness.FindBy_ValorUnitarioVenda(ValorUnitario);

               
                else
                    return ControleVendasBusiness.FindAll();

            }
            set
            {
                ListaResultado = value;
                CarregaGrid();
            }
        }





        #endregion
    }
}